<?php
/**
 * TOP API: alibaba.alsc.union.eleme.storepromotion.reviewbwc.query request
 * 
 * @author auto create
 * @since 1.0, 2024.08.12
 */
class AlibabaAlscUnionElemeStorepromotionReviewbwcQueryRequest
{
	/** 
	 * false-返回链接，true-不返回链接；8.1号及以后该属性移除，默认不返回链接
	 **/
	private $excludeLink;
	
	/** 
	 * 城市ID（经纬度范围覆盖多个城市时，精准召回）
	 **/
	private $filterCityId;
	
	/** 
	 * 以一级类目进行类目限定，以,或者|进行类目分隔
	 **/
	private $filterFirstCategories;
	
	/** 
	 * 1.5级类目查询，以"|"分隔
	 **/
	private $filterOnePointFiveCategories;
	
	/** 
	 * 纬度
	 **/
	private $latitude;
	
	/** 
	 * 经度
	 **/
	private $longitude;
	
	/** 
	 * 店铺佣金比例下限，代表筛选店铺全店佣金大于等于0.01的店铺
	 **/
	private $minCommissionRate;
	
	/** 
	 * 每页数量（1~20，默认20）
	 **/
	private $pageSize;
	
	/** 
	 * 渠道PID
	 **/
	private $pid;
	
	/** 
	 * 搜索内容（店铺名）
	 **/
	private $searchContent;
	
	/** 
	 * 会话ID（分页场景首次请求结果返回，后续请求必须携带，服务根据同一个session_id的请求次数自动叠加翻页返回数据，直至分页结束，返回空）
	 **/
	private $sessionId;
	
	/** 
	 * 三方扩展id
	 **/
	private $sid;
	
	/** 
	 * 排序类型，默认normal，排序规则包括:{"normal":"佣金倒序","distance_asc":"距离由近到远","commission_desc":"佣金倒序","month_sales_desc":"月销量从高到低","commission_rate_desc":"佣金比例倒序", "activity_reward_desc":"返现金额倒序"}
	 **/
	private $sortType;
	
	private $apiParas = array();
	
	public function setExcludeLink($excludeLink)
	{
		$this->excludeLink = $excludeLink;
		$this->apiParas["exclude_link"] = $excludeLink;
	}

	public function getExcludeLink()
	{
		return $this->excludeLink;
	}

	public function setFilterCityId($filterCityId)
	{
		$this->filterCityId = $filterCityId;
		$this->apiParas["filter_city_id"] = $filterCityId;
	}

	public function getFilterCityId()
	{
		return $this->filterCityId;
	}

	public function setFilterFirstCategories($filterFirstCategories)
	{
		$this->filterFirstCategories = $filterFirstCategories;
		$this->apiParas["filter_first_categories"] = $filterFirstCategories;
	}

	public function getFilterFirstCategories()
	{
		return $this->filterFirstCategories;
	}

	public function setFilterOnePointFiveCategories($filterOnePointFiveCategories)
	{
		$this->filterOnePointFiveCategories = $filterOnePointFiveCategories;
		$this->apiParas["filter_one_point_five_categories"] = $filterOnePointFiveCategories;
	}

	public function getFilterOnePointFiveCategories()
	{
		return $this->filterOnePointFiveCategories;
	}

	public function setLatitude($latitude)
	{
		$this->latitude = $latitude;
		$this->apiParas["latitude"] = $latitude;
	}

	public function getLatitude()
	{
		return $this->latitude;
	}

	public function setLongitude($longitude)
	{
		$this->longitude = $longitude;
		$this->apiParas["longitude"] = $longitude;
	}

	public function getLongitude()
	{
		return $this->longitude;
	}

	public function setMinCommissionRate($minCommissionRate)
	{
		$this->minCommissionRate = $minCommissionRate;
		$this->apiParas["min_commission_rate"] = $minCommissionRate;
	}

	public function getMinCommissionRate()
	{
		return $this->minCommissionRate;
	}

	public function setPageSize($pageSize)
	{
		$this->pageSize = $pageSize;
		$this->apiParas["page_size"] = $pageSize;
	}

	public function getPageSize()
	{
		return $this->pageSize;
	}

	public function setPid($pid)
	{
		$this->pid = $pid;
		$this->apiParas["pid"] = $pid;
	}

	public function getPid()
	{
		return $this->pid;
	}

	public function setSearchContent($searchContent)
	{
		$this->searchContent = $searchContent;
		$this->apiParas["search_content"] = $searchContent;
	}

	public function getSearchContent()
	{
		return $this->searchContent;
	}

	public function setSessionId($sessionId)
	{
		$this->sessionId = $sessionId;
		$this->apiParas["session_id"] = $sessionId;
	}

	public function getSessionId()
	{
		return $this->sessionId;
	}

	public function setSid($sid)
	{
		$this->sid = $sid;
		$this->apiParas["sid"] = $sid;
	}

	public function getSid()
	{
		return $this->sid;
	}

	public function setSortType($sortType)
	{
		$this->sortType = $sortType;
		$this->apiParas["sort_type"] = $sortType;
	}

	public function getSortType()
	{
		return $this->sortType;
	}

	public function getApiMethodName()
	{
		return "alibaba.alsc.union.eleme.storepromotion.reviewbwc.query";
	}
	
	public function getApiParas()
	{
		return $this->apiParas;
	}
	
	public function check()
	{
		
		RequestCheckUtil::checkNotNull($this->latitude,"latitude");
		RequestCheckUtil::checkNotNull($this->longitude,"longitude");
		RequestCheckUtil::checkNotNull($this->pid,"pid");
	}
	
	public function putOtherTextParam($key, $value) {
		$this->apiParas[$key] = $value;
		$this->$key = $value;
	}
}
